//
//  XDTabBarController.m
//  XDEducation
//
//  Created by apple on 2017/4/7.
//  Copyright © 2017年 apple. All rights reserved.
//

#import "XDTabBarController.h"
//自定义TabBar
#import "XDTabBar.h"
#import "XDNavigationController.h"


#import "XDActivitiesViewController.h"
#import "XDMeViewController.h"
#import "XDHomeViewController.h"
#import "HNHappyFamilyViewController.h"

@interface XDTabBarController ()

@end

@implementation XDTabBarController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    [self addChildViewController];

}

/**
 添加子控制器
*/
-(void)addChildViewController{   //
    // 添加子控制器
    [self addChildVc:[[XDHomeViewController alloc] init] title:@"首页" image:@"tab_home_normal" selectedImage:@"tab_home_selected"];
    
    [self addChildVc:[[XDActivitiesViewController alloc] init] title:@"热门活动" image:@"tab_activities_normal" selectedImage:@"tab_activities_selected"];
    
    [self addChildVc:[[HNHappyFamilyViewController alloc] init] title:@"幸福一家" image:@"tab_happyfamily_normal" selectedImage:@"tab_happyfamily_selected"];
    
    [self addChildVc:[[XDMeViewController alloc] init] title:@"我的" image:@"tab_me_normal" selectedImage:@"tab_me_selected"];

    //
    
    XDTabBar *tabBar = [[XDTabBar alloc] init];
    // 设置代理
    tabBar.delegate = self;
    // KVC：如果要修系统的某些属性，但被设为readOnly，就是用KVC，即setValue：forKey：。
    // 修改tabBar为自定义tabBar
    [self setValue:tabBar forKey:@"tabBar"];
    
}

/**
*  添加一个子控制器
*
*  @param childVc       子控制器
*  @param title         标题
*  @param image         图片
*  @param selectedImage 选中的图片
*/
- (void)addChildVc:(UIViewController *)childVc title:(NSString *)title image:(NSString *)image selectedImage:(NSString *)selectedImage
{
    // 设置子控制器的文字(可以设置tabBar和navigationBar的文字)
    childVc.title = title;
    
    // 设置子控制器的tabBarItem图片
    childVc.tabBarItem.image = [UIImage imageNamed:image];
    // 禁用图片渲染
    childVc.tabBarItem.selectedImage = [[UIImage imageNamed:selectedImage] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    
    // 设置文字的样式
    [childVc.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName : UIColorFromRGB(0xACACAC)} forState:UIControlStateNormal];
    [childVc.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName : ThemeColor} forState:UIControlStateSelected];
    //    childVc.view.backgroundColor = RandomColor; // 这句代码会自动加载主页，消息，发现，我四个控制器的view，但是view要在我们用的时候去提前加载
    
    // 为子控制器包装导航控制器
    XDNavigationController *navigationVc = [[XDNavigationController alloc] initWithRootViewController:childVc];
    //
    // 添加子控制器
    [self addChildViewController:navigationVc];
}



@end
